﻿
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
	<head>  
		<title>CrecheBook</title>

		<!-- meta -->
		<meta name="description" content="">
		<meta name="author" content="M. Steve">

		<!-- mon icon -->
		<link rel="shortcut icon" href="favicon.ico">
		<meta charset="UTF-8">
		

		<!-- css -->
		<link rel="stylesheet" href="medias/css/main.css" type="text/css" media="screen">
		<link rel="stylesheet" href="medias/css/inputs.css" type="text/css" media="screen">
		<link rel="stylesheet" href="medias/css/map.css" type="text/css" media="screen">
		
	
		<!-- javascript -->
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
		<script src="medias/javaScript/core.js"></script>
		<script src="medias/javaScript/inputs.js"></script>
		
		<!-- Inclusion de l'API Google MAPS -->
		<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

		<script type="text/javascript">
		
		/* D?claration des variables  */
		var geocoder;
		var map;
		var markers = new Array();
		var lat;
		var lng;
		var i = 0;
		var userMarker= new google.maps.Marker();
		var cpt =0;
		
		
		/**
		* Initialise la Google map
		* @author STEVE 
		*/
		function initialiserMAP() 
		{
			clearMarkers();
			/* Instanciation du geocoder  */
			geocoder = new google.maps.Geocoder();
			var myOptions = {
			zoom: 15,
			mapTypeId: google.maps.MapTypeId.ROADMAP
			}
			/* Chargement de la carte  */
			map = new google.maps.Map(document.getElementById("carte"), myOptions);
			
			zoomAdress("Toulouse");
		}
		
		/**
		* Affiche un plan rapprocher par rapport a l'adresse
		* @author STEVE 
		*/
		function zoomAdress(address)
		{
			/* R?cup?ration de la valeur de l'adresse saisie */
			geocoder.geocode( { 'address': address}, function(results, status) 
			{
				lat = results[0].geometry.location.lat();
				lng = results[0].geometry.location.lng();
				map.setCenter(results[0].geometry.location);
			} 
			
			);
		}
		
		
		/**
		* Ajoute le markeur utilisateur sur la map
		* @author STEVE 
		*/
		function addUserMarker(address)
		{
			userMarker.setMap(null);

			/* R?cup?ration de la valeur de l'adresse saisie */
			geocoder.geocode( { 'address': address}, function(results, status) 
			{
				/* Si l'adresse a pu ?tre g?olocalis?e */
				if (status == google.maps.GeocoderStatus.OK) 
				{
					/* R?cup?ration de sa latitude et de sa longitude */
					lat = results[0].geometry.location.lat();
					lng = results[0].geometry.location.lng();
					map.setCenter(results[0].geometry.location);
					/* Affichage du marker */
					userMarker = new google.maps.Marker({
					map: map,
					position: results[0].geometry.location,
					title:address
					//icon : 'http://maps.google.com/mapfiles/marker_green.png'
					});
					
					/*google.maps.event.addListener(userMarker, 'click');*/
					
					
				} 
			}
			);
		}
		
		/**
		* Montre la creche sur la map, zoom dessus
		* @author STEVE 
		*/
		function showAddress() 
		{
		
			
			
			/* R?cup?ration de la valeur de l'adresse saisie */
			var address = document.getElementById("search").value;
			
			/* Appel au service de geocodage avec l'adresse en param?tre */
			geocoder.geocode( 
				{ 'address': address}, function(results, status) 
				{
					/* Si l'adresse a pu ?tre g?olocalis?e */
					if (status == google.maps.GeocoderStatus.OK) 
					{
						/* R?cup?ration de sa latitude et de sa longitude */
						lat = results[0].geometry.location.lat();
						lng = results[0].geometry.location.lng();
						map.setCenter(results[0].geometry.location);
						map.setZoom(13);
						
						addUserMarker(address);
					} 
				}
			);
		}
			
		
		/**
		* Lance la page web sur une creche a partir de son marker
		* @author STEVE 
		* @param marker: marqueur cible
		*/
		function loadURL(marker) 
		{
			return function () 
			{
				window.location.href = marker.url;
			}
		}
		
		
		/**
		* Suprime tout les marqueur de la map
		* @author STEVE 
		*/
		function clearMarkers()
		{
			for(i;i < markers.length;i++)
      			markers[i].setMap(null);
				
			userMarker.setMap(null);
		}
		
		
function sleep(milliSeconds){
var startTime = new Date().getTime(); // get the current time
while (new Date().getTime() < startTime + milliSeconds); // hog cpu
}
		
		/**
		* Ajoute un Marker sur la map
		* @author STEVE 
		* @param address: addresse de la creche
		* @param name: nom de la creche
		* @param myurl: url pour avoir plus d'information sur la creche
		*/
		function addMarker(address,name,myurl,jsonResult) 
		{

			 //R?cup?ration de la valeur de l'adresse saisie
			geocoder.geocode
			( 
				{ 'address': address}, 
				function(results, status) 
				{

					if (status == google.maps.GeocoderStatus.OK) 
					{
			
						lat = results[0].geometry.location.lat();
						lng = results[0].geometry.location.lng();
						//alert("ok");
						document.getElementById("names").innerHTML += "<tr><th>"+name+"</th><th >"+lat+"</th><th >"+lng+"</th></tr>";
document.getElementById("csv").innerHTML += name + ";MA;;" + jsonResult.adresse.adresse + ";" + jsonResult.adresse.code_postal + ";;;;;" + lat + ";" + lng + ";" + jsonResult.adresse.ville + "<br>";


						

						
					} 
					
					
				}
			);
			
			
		}
		
		
		
		/**
		* Ajoute un Marker sur la map
		* @author STEVE 
		* @param address: addresse de la creche
		* @param name: nom de la creche
		* @param myurl: url pour avoir plus d'information sur la creche
		*/
		function addMarkerCord(x,y,name,myurl) 
		{
			var myLatlng = new google.maps.LatLng(x,y);
		

			var marker = new google.maps.Marker({
			map: map,
			position:  myLatlng,
			title:name,
			icon: 'medias/images/maison-maison-icone-6802-48.png',
			url:myurl
			});
					
			google.maps.event.addListener(marker, 'click', loadURL(marker));
					
					
			/* Permet de supprimer le marker pr?c?demment affich? */
			markers.push(marker);

		}
		
		/**
		* Effectue une requette JSON pour receuillir les creches existante dans la base de donn?e
		* @author STEVE 
		*/
		function getMarker()
		{
			$.getJSON("MarkerJSON",showMarker).error(displayError);
		}
		
		
		
		/**
		* Affiche les creches de la base de donn?e
		* @author STEVE
		* @param jsonResult
		*/
		function showMarker(jsonResult) 
		{
			zoomAdress("Toulouse");

			
			showing = false;


			for (var i in jsonResult) 
			{
				
				
				if (showing == true)
				{
					addMarker(
						jsonResult[i].adresse.adresse + " "+  jsonResult[i].adresse.ville  + " "+ jsonResult[i].adresse.code_postal,
						jsonResult[i].nom,
						"creche.jsp?name="+jsonResult[i].nom+"&ville="+jsonResult[i].adresse.ville,jsonResult[i]);
					
				}
				
				
				if (jsonResult[i].nom == "UNIVERSITE") 
				{
					showing = true;
				}
			}
			
			
		

		
		}
		
		</script>
		

		
		
			




	</head>
	
	<body >
			
				<center><div id="carte"></div></center>
				<br>
				<script type="text/javascript">
				initialiserMAP();
				getMarker();
				
				
				</script>
				Result: <br>
				<table border='1' id ="names">
				<tr>
					<th >Nom</th>
					<th >Lat</th>
					<th >Lng</th>
				</tr>
				</table>
				
				<p id="csv"></p>

				
				
				
				
	

		

	</body>

</html>
